package pck_tramitedocu.pck_web.pck_utiles;

import java.io.UnsupportedEncodingException;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import pck_tramitedocu.pck_src.pck_utiles.Cls_Parametros;
import pck_tramitedocu.pck_src.pck_utiles.cls_utilitarios;

public class Cls_UtilesParaWeb {

    public static Map<String, String> obtenerParametrosDeGrilla(HttpServletRequest _request) {
        Map map = new HashMap();
        map.put("rp", _request.getParameter("rp"));
        map.put("page", _request.getParameter("page"));
        map.put("query", _request.getParameter("query"));
        map.put("query_p", "%" + _request.getParameter("query").toUpperCase().trim() + "%");
        map.put("qtype", _request.getParameter("qtype"));
        if (("" + _request.getParameter("array_selected")).split(";").length == 5) /* 27 */ {
            map.put("array_selected", "");
        } else {
            map.put("array_selected", _request.getParameter("array_selected"));
        }
        try {
            if (Integer.parseInt("" + _request.getParameter(Cls_Parametros.Request_OPT_HTML)) == 2) {
                map.put(Cls_Parametros.Map_FUNCION_HTML_LINK, _request.getParameter(Cls_Parametros.Request_OPT_HTML));
            } else if (Integer.parseInt("" + _request.getParameter(Cls_Parametros.Request_OPT_HTML)) == Integer.parseInt("2")) {
                map.put(Cls_Parametros.Map_FUNCION_HTML_LINK, Cls_Parametros.Map_FUNCION_HTML_LINK);
            } else if (Integer.parseInt("" + _request.getParameter(Cls_Parametros.Request_OPT_HTML)) == Integer.parseInt("20")) {
                map.put(Cls_Parametros.Map_FUNCION_HTML_LINK, "20");
            } else if (Integer.parseInt("" + _request.getParameter(Cls_Parametros.Request_OPT_HTML)) == Integer.parseInt("4")) {
                map.put(Cls_Parametros.Map_FUNCION_HTML_LINK, "4");
            } else if (Integer.parseInt("" + _request.getParameter(Cls_Parametros.Request_OPT_HTML)) == Integer.parseInt("5")) {
                map.put(Cls_Parametros.Map_FUNCION_HTML_LINK, "5");
            } else if (Integer.parseInt("" + _request.getParameter(Cls_Parametros.Request_OPT_HTML)) == Integer.parseInt("6")) {
                map.put(Cls_Parametros.Map_FUNCION_HTML_LINK, "6");
            } else {
                map.put(Cls_Parametros.Map_FUNCION_HTML_LINK, null);
            }
        } catch (NumberFormatException ex) {
            map.put(Cls_Parametros.Map_FUNCION_HTML_LINK, null);
        }

        return map;
    }

    public static Map<String, String> obtenerParametrosParaGrillaDocumento(HttpServletRequest _request) {
        String data_busquedad_documento[] = ("" + _request.getParameter(Cls_Parametros.Request_ARRAY_SELECCIONADO)).split(";");
        Map<String, String> map = new HashMap();
        if (data_busquedad_documento.length != 5) {
            data_busquedad_documento = new String[5];
        }
        map.put(Cls_Parametros.Map_ASUNTO, "%" + (cls_utilitarios.obtenerValorDeDatoParaSplit(data_busquedad_documento[0], "|").length() == 0 ? ""
                : cls_utilitarios.obtenerValorDeDatoParaSplit(data_busquedad_documento[0], "|")) + "%");
        map.put(Cls_Parametros.Map_TIPO_DOCUMENTO, "%" + (cls_utilitarios.obtenerValorDeDatoParaSplit(data_busquedad_documento[1], "|").length() == 0 ? ""
                : cls_utilitarios.obtenerValorDeDatoParaSplit(data_busquedad_documento[1], "|")) + "%");
        map.put(Cls_Parametros.Map_FECHA_I, "" + (cls_utilitarios.obtenerValorDeDatoParaSplit(data_busquedad_documento[2], "|").length() == 0 ? Cls_Parametros.Cls_campos_genericos_FECHA_INICIO
                : cls_utilitarios.obtenerValorDeDatoParaSplit(data_busquedad_documento[2], "|")));
        map.put(Cls_Parametros.Map_FECHA_F, "" + (cls_utilitarios.obtenerValorDeDatoParaSplit(data_busquedad_documento[3], "|").length() == 0 ? Cls_Parametros.Cls_campos_genericos_FECHA_FIN
                : cls_utilitarios.obtenerValorDeDatoParaSplit(data_busquedad_documento[3], "|")));
        map.put(Cls_Parametros.Map_EMP_CODIGO, "%" + (cls_utilitarios.obtenerValorDeDatoParaSplit(data_busquedad_documento[4], "|").length() == 0 ? ""
                : cls_utilitarios.obtenerValorDeDatoParaSplit(data_busquedad_documento[4], "|")) + "%");
        return map;
    }

    public static String encriptarAMd5(String input) {
        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            byte[] messageDigest = md.digest(input.getBytes("UTF-8"));
            BigInteger number = new BigInteger(1, messageDigest);
            String hashtext = number.toString(16);
			// Now we need to zero pad it if you actually want the full 32
            // chars.
            while (hashtext.length() < 32) {
                hashtext = "0" + hashtext;
            }
            return hashtext;
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
            return null;
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
            return null;
        }
    }
}
